squares = list(map(lambda x: x**2, range(10)))
# 1 生成一个从0到9的数字序列：[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# 2 这是一个 匿名函数（lambda 函数）
#
# 功能：接收一个参数 x，返回 x 的平方（x**2）
# 3 map() 函数将第一个参数（函数）应用到第二个参数（可迭代对象）的每个元素上
#
# 这里的作用：将平方函数应用到 range(10) 的每个数字上

# 4  返回一个 map对象（迭代器），包含平方后的结果
# 将 map对象 转换为列表
print(squares)

lst = [x**2 for x in range(10)]
print(lst)
# 列表推导式
# 1 创建一个列表，将 range(10) 的每个数字的平方添加到列表中
# 2 列表推导式是一个简洁的语法，用于创建列表。
#
# 列表推导式和 map() 函数的用法相似，但是列表推导式更简洁和清晰。
#
# 列表推导式通常用于创建新的列表，而 map() 函数通常用于对列表进行操作。

lst2 = [x**2 for x in range(10) if x%4==0] #先判断x是不是4的倍数 如果是则返回x的平方
print(lst2)

lst3 = [-1,-3,5,7,9,11,13,15,17,19]
lst4 = [y-6 for y in lst3 if y>0] # 列表推导式 先判断y是不是大于0 如果是则返回y减6
print(lst4)

x = [i for  i in range(10,20)]
# print(x)
y = [j for j in range(50,80)]
# print(y)
z = [(k,v) for k in x for v in y if v%k ==0]
print(z)

freshfruit = ['a  banana', '  loganberry ', 'passion fruit  ']
[weapon.strip() for weapon in freshfruit]
print(freshfruit)

# [x, x**2 for x in range(6)] # did you forget parentheses around the comprehension target?
vec = [[1,2,3], [4,5,6], [7,8,9]]
c = [num for elem in vec for num in elem]
print(c)






